上位机开发笔记
» 搜索 » user:terrorist post:true
谷歌浏览器自动化之百度搜图
模拟一个等待函数
var js = /** const sleep = (time) => { return new Promise(resolve => setTimeout(resolve, time)) } async function sleepAsync(time) { await sleep(time) } sleepAsync(%s) **/ var wait = function(ms){ return cdp.Runtime.evaluate(谷歌浏览器自动化之百度搜图
截图淘宝首页
谷歌浏览器自动化之百度搜图
import win.ui;
/*DSG{{*/
var winform = win.form(text="百度搜图";right=287;bottom=103)
winform.add(
button={cls="button";text="运行";left=88;top=48;right=216;bottom=88;z=1}
)
/*}}*/
//io.open()
import aaz.chrome.dp;
var cdp, err = aaz.chrome.dp()
if(!cdp){
winfor
terrorist •
2022-04-29 • 最后回复来自 super
sciter 触发 JS 类组件的自定义事件的示例
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=199;bottom=239)
winform.add(
button={cls="button";text="Button";left=32;top=144;right=128;bottom=184;z=1}
)
/*}}*/
import web.sciter
import web.sciter.debug;
var wb = web.sciter( winfor
terrorist •
2022-04-27 • 最后回复来自 nlysh007
sciter 资源打包和加载的步骤
开发时可以载入没打包的资源
import web.sciter if(_STUDIO_INVOKED){ import web.sciter.inspector } var wb = web.sciter(mainForm) if(_STUDIO_INVOKED){ import web.sciter.debug; wb.attachEventHandler( web.sciter.debug ); wb.go("/sciter dev/main.html") } else { wbsciter.js 嵌入 web.view
把自定义控件改为 richedit ,然后调整大小也是出现穿透桌面的情况,代码如下
import win.ui; /*DSG{{*/ var winform = win.form(text="external 接口";right=927;bottom=559) winform.add() /*}}*/ import web.sciter; var wbSciter = web.sciter( winform ); // doc: \sciter-js-sdk-main\demos\usciter\resciter.js 嵌入 web.view
import win.ui;
/*DSG{{*/
var winform = win.form(text="external 接口";right=927;bottom=559)
winform.add()
/*}}*/
import web.sciter;
var wbSciter = web.sciter( winform );
import web.view;
namespace web.sciter.behavior.webview{
onAttach = function (scOwner) {
terrorist •
2022-03-22 • 最后回复来自 jacen
谷歌 brotli 解压缩简易版
一,库源码:
namespace aaz.libbrotli{ _dll := ..raw.loadDll($"~\lib\aaz\libbrotli\.res\libbrotli.dll",,"cdecl") decompress = function(str){ var state = _dll.BrotliDecoderCreateInstanceP(0, 0, 0); var availableIn = {int value=#str}; var nextIn = {ptr v对 thread.semaphore 中的一段源码有疑惑,请指教
if( !max || max <=0 ) error("@参数2 最大计数值必须大于0");
if(initCount <= 0) error("@参数3 初始计数值必须大于0");
elseif(initCount > max) error("@参数3 初始计数值不能大于最大计数值");
elseif(initCount === null) initCount = max;
if(targ1 == "string"){
// 尝试打开
this.handle = OpenSemaphore(
terrorist •
2022-01-13 • 最后回复来自 terrorist
对 thread.semaphore 中的一段源码有疑惑,请指教
根据 https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createsemaphorea
对 thread.semaphore 中的一段源码有疑惑,请指教
this.handle = CreateSemaphore(null,initCount,max,semaphoreName);
if(! this.handle ) {
if( targ1== "string") {
this.handle = OpenSemaphore( 0x1F0003/*_EVENT_ALL_ACCESS*/,false ,semaphoreName);
if( this.handle ) this.conflict = "信号量已存在";
}
}
terrorist •
2022-01-12 • 最后回复来自 terrorist
为什么
(转)hp socket 5.8.2 高性能网络扩展库
hp socket 说已经提供了 线程池组件的方案,包含了 OnWorkerThreadS
一个性能很强的web图表控件 lightningchart-js
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add()
/*}}*/
import web.view
var wb = web.view(winform)
wb.go("https://www.arction.com/lightningchart-js-performance/")
winform.show();
win.loopMessage();
terrorist •
2022-01-03 • 最后回复来自 money
上面是
(转)hp socket 5.8.2 高性能网络扩展库
回复#3 @txhelp :
理论上可以通过 ..subscribe("beforeUnload") 来执行释放 COM 套间函数,
可以加入开黑啦群讨论这个库的使用 https://kaihei.co/7bZDKE
simpleWebsocketClient 同时支持 ws , wss
https://github.com/btx638/HP-Socket-aardio/tree/master/aaz/libhpsocket/app/simpleWebsocketClient
import win.ui; /*DSG{{*/ var winform = w(转)hp socket 5.8.2 高性能网络扩展库
感谢回复,已删除 thread.callbackInitialize 相关代码